Many of today's business applications require complex software architectural models and systems. For instance, Service-Oriented Architecture (SOA) software environments provide interoperable services that support a variety of an organization's business objectives and processes. SQA provides for the designing, development and building of software code and/or data structures that provide services in the form of well-defined business functionalities. SOA also provides a way for consumers of services, which are typically web-based applications, to be aware of available SOA-based services.
The SOA platform separates functions into services that are made accessible over a network for allowing end-users to combine, share and reuse services in the production of applications. The services are typically unassociated data structures (i.e., applications) that have no embedded subroutines to other data structures (i.e., other applications). Each service is composed of software code and/or data structures, and includes metadata that describes the characteristics of each service, as well as its code/data that drives the particular service. Users can select and string together either small or large segments of services based on their functionality to form ad hoc applications. In doing so, these ad hoc applications are built almost entirely from existing software services.
Current versions of SOA allow new applications to be developed for publication as a Web service into a service registry. Alternatively, new versions of SOA allow existing software applications to be wrapped with a service-compliant interface, and then published as a Web service. Service-compliant interfaces are known as middleware layer software products that bridge the gap between existing software applications and new applications under development. They are used by end-users to create new applications by integrating existing applications with other applications. One such example of a service wrapping and development platform is IBM's WebSphere.
However, since SOA solutions continue to be implemented in an ad hoc basis, rather than in a systematic manner, the design and development of reusable services and service components remain to be a challenge. Additionally, SOA solutions are heavy weighted modeling processes requiring use of numerous reusable services and service components that often overlap one another, or even replicate each other during the design and development stages of creating new applications. This overlap and replication generates competing platforms in the design and creation stage of such applications, which ultimately detrimentally slows down the development and use thereof. Also, the overlap and/or replication of processes and sub-processes within such new applications wastes valuable human resources, thereby leading to increased operating expenditures. There is also no assurance that the resultant application created using SOA modeling conforms with the application desired by the end-user or the hierarchial structure of such desired application.
Accordingly, there continues to be a need for improved SOA modeling approaches that efficiently, cost effectively and accurately generate applications that meet desired end goals and conform to hierarchial architecture structure.